fix: Error thrown during dry-run#952
Merged
Merged
Conversation
steadytao
reviewed
Jun 3, 2026
Contributor
steadytao
left a comment
There was a problem hiding this comment.
Thank you for fixing this. Confirmed fix.
This looks like the right behavioural fix to me. The only thing I would suggest is adding a small regression test for the single-file --dry-run --mkpath case so it stays covered.
Contributor
Author
|
Not sure how things are handled here, so i used for example what i found in the |
A single-file --mkpath copy whose destination parent does not exist failed under --dry-run: make_path() only *reports* the directories it would create in a dry run, so change_dir#3 then tried to chdir into a parent that isn't there and aborted with "change_dir#3 ... failed". When the parent is genuinely missing in a dry run, skip the chdir and mark the destination as not-yet-present (dry_run++), exactly as the multi-file/dir-creation path already does, so the generator doesn't probe the missing tree. Gating it on the missing-parent case keeps an ordinary file-to-file dry run chdir'ing into and itemizing against an existing destination. Fixes: RsyncProject#880 Co-authored-by: Stiliyan Tonev (Bark) <stiliyan21@gmail.com>
…-file Covers both halves: a --mkpath file-to-file --dry-run must succeed and match the real run (the RsyncProject#880 abort), and a plain file-to-file --dry-run onto an existing differing destination must still itemize the real change rather than report it as brand new. Both compare "--dry-run -i" output against the real run. Co-authored-by: Stiliyan Tonev (Bark) <stiliyan21@gmail.com>
91e3f10 to
26d44f8
Compare
tridge
approved these changes
Jun 5, 2026
Member
|
@userwiths I did a small bit of rework of your fix, thanks for doing this! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
closes: #880
get_local_namerefers to 2 "modes", when the destination is a folder and when its a file.It seems that
change_dirshould take into account if we are dry-running in both cases, but it was considering the option only when dest was a folder